<?php namespace Admin\Controller; 

//分类默认控制器
class CategoryController extends CommonController{
//	私有属性
	private $model;
	//框架自动执行函数
	public function __auto(){
//		实例化模型类
		$this->model = new \Common\Model\Category;
	}
	
	//分类列表
	public function index(){
//		获取模型类指定的表的所有数据按升序排列是二位数组
		$data = $this->model->orderBy('csort','ASC')->get();
		//如果没有一个分类，那么先去添加
		if(!$data){
			View::success('请先去添加分类',U('add'));
		}
		//变为树状结构方便观察父子级关系1数据2数据名称3主键4父级id
		$data = Data::tree($data,'cname','cid','pid');
		//分配变量
		View::with('data',$data);
		//显示模板
	    View::make();
	}
	//顶级分类添加
	public function add(){
		$TypeModel=new \Common\Model\Type;
		$data=$TypeModel->get();

		if(IS_POST){
			

			//如果这个函数返回值为真表明验证成功
			if($this->model->store()){
//				显示成功模板跳转到Cate控制器首页
				View::success("添加成功",U('index'));
			}
			//提示错误
			View::error($this->model->getError());
		}
			
		View::with('data',$data);
//		显示模板
	    View::make();
	}
	
	//子分类添加
	public function addSon(){
		//2.添加
		if(IS_POST){
		    if($this->model->store()){
		    	 	View::success("添加成功",U('index'));
		    }
		   View::error($this->model->getError());
		}
		//1.获得所属分类
		$cid = Q('get.cid',0,'intval');
		$cate = $this->model->where("cid={$cid}")->find();
		View::with('cate',$cate);
		$TypeModel=new \Common\Model\Type;
		$data=$TypeModel->get();
		View::with('data',$data);
	    View::make();
	}
	
	//分类编辑
	public function edit(){
//		此处可在模板加隐藏域否则就要获取编辑的数据的id
		$cid=Q('get.cid',0,'intval');
		if(IS_POST){			
			$this->model->where("cid={$cid}")->upda();			
			View::success('修改成功',U('index'));
		}
//		旧数据
		$data=$this->model->where("cid={$cid}")->find();
		View::with('data',$data);
		$cateData = Data::tree($this->model->getNoMy($cid),'cname');
		View::with('cateData',$cateData);
	    View::make();
		
	}
	//删除
	public function del(){
		$cid = Q('get.cid',0,'intval');
		p($cid)exit;
//		//1.判断该分类下面是否有文章
//		$arcModel = new \Common\Model\Arc;
//		$arcData = $arcModel->where("category_cid={$cid}")->find();
//		if($arcData){//该分类下面有文章
//			View::error('请先删除该分类下面的文章');
//		}
		//2.子分类上移位置
		//pluck直接获取值
		$pid = $this->model->where("cid={$cid}")->pluck('pid');
		//找到当前分类的所有的子集把pid改成被删除分类的pid
		$this->model->where("pid={$cid}")->update(array('pid'=>$pid));
		//3.执行删除
		$this->model->where("cid={$cid}")->delete();
		View::success('删除成功');
	}
	
	
}